/**
 * 解决Vue Template模板中无法使用可选链的问题
 * @param obj
 * @param rest
 * @returns {*}
 */

export const optionalChaining = (obj, ...rest) => {
  let tmp = obj
  for (const key in rest) {
    let name
    if (rest[key].indexOf('[') !== -1 && rest[key].indexOf(']') !== -1) {
      name = rest[key].slice(1, -1)
    } else {
      name = rest[key]
    }
    tmp = tmp?.[name]
  }
  return tmp || ''
}
// 数据：
// data_over: {
//   name: {
//     tit: {
//       list: [
//         {
//           obj: {
//             xudadaa: '123',
//           },
//         },
//         {
//           obj: {
//             xudadaa: '456',
//           },
//         },
//       ],
//     },
//   },
// }
// Template模板中用法：获取第二个xudadaa
// {{ $$(data_over, 'name', 'tit', 'list', '[1]', 'obj', 'xudadaa') }}
